package com.maket.jbxx.service;

import java.util.List;
import com.maket.jbxx.domain.GcFactoryUnitTable;
import com.maket.jbxx.domain.vo.TreeSelect;
import com.ruoyi.system.api.domain.SysDept;

/**
 * 工厂定义Service接口
 * 
 * @author ruoyi
 * @date 2024-06-25
 */
public interface IGcFactoryUnitTableService 
{
    /**
     * 查询工厂定义
     * 
     * @param dyCode 工厂定义主键
     * @return 工厂定义
     */
    public GcFactoryUnitTable selectGcFactoryUnitTableByDyCode(String dyCode);

    /**
     * 查询工厂定义列表
     * 
     * @param gcFactoryUnitTable 工厂定义
     * @return 工厂定义集合
     */
    public List<GcFactoryUnitTable> selectGcFactoryUnitTableList(GcFactoryUnitTable gcFactoryUnitTable);

    /** 查询所有的编码 */
    List<GcFactoryUnitTable> selectGcFactoryDyCode(GcFactoryUnitTable gcFactoryUnitTable);


    /**
     * 查询工厂定义列表
     *
     * @param gcFactoryUnitTable 工厂定义
     * @return 工厂定义集合
     */
    public List<GcFactoryUnitTable> selectGcFactoryUnitTableByList(GcFactoryUnitTable gcFactoryUnitTable);


    /**
     * 查询部门树结构信息
     *
     * @param dept 部门信息
     * @return 部门树信息集合
     */
    public List<TreeSelect> selectDeptTreeList(GcFactoryUnitTable dept);

    /**
     * 构建前端所需要树结构
     *
     * @param depts 部门列表
     * @return 树结构列表
     */
    public List<GcFactoryUnitTable> buildDeptTree(List<GcFactoryUnitTable> depts);


    List<TreeSelect> buildDeptTreeSelect(List<GcFactoryUnitTable> depts);

    /**
     * 新增工厂定义
     * 
     * @param gcFactoryUnitTable 工厂定义
     * @return 结果
     */
    public int insertGcFactoryUnitTable(GcFactoryUnitTable gcFactoryUnitTable);

    /**
     * 修改工厂定义
     * 
     * @param gcFactoryUnitTable 工厂定义
     * @return 结果
     */
    public int updateGcFactoryUnitTable(GcFactoryUnitTable gcFactoryUnitTable);

    /**
     *修改工厂定义的启禁用
     */
    public  int updateGcFactoryUnitTableIsStart(GcFactoryUnitTable gcFactoryUnitTable);

    /**
     * 批量删除工厂定义
     * 
     * @param dyCodes 需要删除的工厂定义主键集合
     * @return 结果
     */
    public int deleteGcFactoryUnitTableByDyCodes(String[] dyCodes);

    /**
     * 删除工厂定义信息
     * 
     * @param dyCode 工厂定义主键
     * @return 结果
     */
    public int deleteGcFactoryUnitTableByDyCode(String dyCode);
}
